package com.shop.cloud.upms.admin.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.shop.cloud.upms.common.entity.SysTenant;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 租户管理 Mapper 接口
 * </p>
 *
 * @author
 * @since 2019-01-20
 */
@InterceptorIgnore(tenantLine="true")
public interface SysTenantMapper extends BaseMapper<SysTenant> {

	/**
	 * 通过租户ID删除租户
	 * 包括base_upms库所有表的当前租户数据
	 */
	void deleteSysTenantById(Serializable id);

	/**
	 * 获取平台系统用户绑定的租户
	 * @return
	 */
	List<SysTenant> listSysTenant(String userId);

	/**
	 * 新增指定租户的库
	 * @param tenantId
	 */
	void createTenantDataBase(@Param("tenantId")String tenantId, @Param("dataBaseTables")List<String> dataBaseTables,  @Param("dbNameMall")String dbNameMall);

	/**
	 * 新增指定租户的表
	 * @param tenantId
	 */
	@InterceptorIgnore(tenantLine ="true")
	void createTenantDataBaseTables(@Param("tenantId")String tenantId, @Param("dataBaseTables")List<String> dataBaseTables);

	/**
	 * 获取指定库的所有表名
	 * @param dataBaseName
	 * @return
	 */
	List<String> listDataBaseTables(String dataBaseName);
}
